using System;
using System.Configuration;
using System.Data;
using System.Web.UI.WebControls;
using System.Data.SqlClient;//libreria para trabajar con qsl

namespace Web
{
    public partial class Ubicaciones : Pagina
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

                if (PeriodoActual.Glosa.ToString() != "-99")
                {
                    Cargar_GridView();
                    CargacboBodega();
                    Txt_Periodo.Text = PeriodoActual.Glosa.ToString();
                    Txt_Codigo.Text = BLL.Ubicaciones.ObtenerMaxId().ToString();
                }
                else
                  
                Response.Redirect("../Default.aspx");
                 //Response.Write("<script type=\"text/javascript\">alert('Favor Seleccione Periodo en Default');</script>");
            }
        }

        protected void CargacboBodega()
        {

            var Tabla = new BLL.Ubicaciones().Cbo_Bodegas();

            cboBodega.DataSource = Tabla;
            cboBodega.DataBind();

            Util.Common.CargaDropDownList(ref cboBodega,  Tabla, "Bodega", "codigo_bodega", "Seleccione Bodega");
        }

        protected void CargacboPasillo(string bodega)
        {
        
            var Tabla = new BLL.Ubicaciones().Cbo_Pasillos(bodega);

            cboPasillo.DataSource = Tabla;
            cboPasillo.DataBind();

            Util.Common.CargaDropDownList(ref cboPasillo, Tabla, "Pasillo", "bodega", "Seleccione Pasillo");
        }

        private void LimpiaForm()
        {
            //Txt_Periodo.Text = BLL.PeriodoInventario.GetPeriodos.ToString();
            Txt_Codigo.Text = BLL.Ubicaciones.ObtenerMaxId().ToString();
            cboBodega.SelectedIndex = 0;
            cboPasillo.SelectedIndex = 0;

            
            //Txt_Bodega.Text    = "";
           //Txt_Pasillo.Text = "";
            Txt_Ubicacion.Text = "";
            //txtLider.Text      = "";
            //txtUsuario.Text    = "";
            //txtEsperado.Text   = "";
            //txtActual.Text     = "";

            Txt_Periodo.Enabled = true;

            //   Txt_Bodega.Enabled = true;

            Cargar_GridView();
        }
        private void Cargar_GridView()
        {
            string v_periodo = PeriodoActual.Glosa.ToString();
            string connstring = ConfigurationManager.ConnectionStrings["connDB"].ToString();
            SqlConnection conn = new SqlConnection(connstring);
            SqlCommand cmd = new SqlCommand();

            cmd.CommandText = "sp_get_Ubicaciones";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection = conn;

            SqlParameter sqlparam1 = new SqlParameter("@Periodo", SqlDbType.Int, 3);

            sqlparam1.Value = v_periodo;
           
            cmd.Parameters.Add(sqlparam1);
           

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet dl = new DataSet();
            da.Fill(dl);
            conn.Close();
            GridView_Ubicaciones.DataSource = dl;
            GridView_Ubicaciones.DataBind();

            cmd.Connection.Close();
            conn.Close();
        }

        protected void GridView_Ubicaciones_SelectedIndexChanged(object sender, EventArgs e)
        {
             
            string v_bodega;
            string v_pasillo;
            
            Txt_Periodo.Text = ((Label)GridView_Ubicaciones.SelectedRow.FindControl("Label8")).Text;
            Txt_Codigo.Text = ((Label)GridView_Ubicaciones.SelectedRow.FindControl("Label9")).Text;
         
            v_bodega=((Label)GridView_Ubicaciones.SelectedRow.FindControl("Label11")).Text;
            v_pasillo=((Label)GridView_Ubicaciones.SelectedRow.FindControl("Label13")).Text;

            Txt_Ubicacion.Text = ((Label)GridView_Ubicaciones.SelectedRow.FindControl("Label14")).Text;

            if (cboBodega.Items.FindByText(((Label)GridView_Ubicaciones.SelectedRow.FindControl("Label11")).Text) != null)
            {
            cboBodega.SelectedIndex = -1;
            cboBodega.Items.FindByText(((Label)GridView_Ubicaciones.SelectedRow.FindControl("Label11")).Text).Selected = true;
            }

            CargacboPasillo(v_bodega);

            if (cboPasillo.Items.FindByText(((Label)GridView_Ubicaciones.SelectedRow.FindControl("Label13")).Text) != null)
            {
                cboPasillo.SelectedIndex = -1;
                cboPasillo.Items.FindByText(((Label)GridView_Ubicaciones.SelectedRow.FindControl("Label13")).Text).Selected = true;
            }   

         
            Cargar_GridView();

        }
        protected void GridView_Ubicaciones_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Eliminar")
            {

                int index = Convert.ToInt32(e.CommandArgument);
                string connstring = ConfigurationManager.ConnectionStrings["connDB"].ToString();
                SqlConnection conn = new SqlConnection(connstring);
                SqlCommand cmd = new SqlCommand();

                cmd.CommandText = "sp_del_Ubicacion";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Connection = conn;

                SqlParameter sqlparam1 = new SqlParameter("@Codigo", SqlDbType.Int, 3);
                SqlParameter sqlparam2 = new SqlParameter("@RETORNO", SqlDbType.Int, 1);
                SqlParameter sqlparam3 = new SqlParameter("@MENSAJE", SqlDbType.VarChar, 100);




                sqlparam1.Value = index;
                sqlparam2.Value = 0;
                sqlparam3.Value = "";

                cmd.Parameters.Add(sqlparam1);
                cmd.Parameters.Add(sqlparam2);
                cmd.Parameters.Add(sqlparam3);

                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();

                LimpiaForm();

            }
        }

        protected void Btn_Aprobar_Click(object sender, EventArgs e)
        {
            string v_OK;
          
            v_OK = "OK";

            if (Txt_Periodo.Text == "") { v_OK = "NOK"; }
            if (Txt_Codigo.Text == "") { v_OK = "NOK"; }
            if (Txt_Ubicacion.Text == "") { v_OK = "NOK"; }

            if (v_OK == "OK")
            {
                string connstring = ConfigurationManager.ConnectionStrings["connDB"].ToString();
                SqlConnection conn = new SqlConnection(connstring);
                SqlCommand cmd = new SqlCommand();

                cmd.CommandText = "SP_INS_UBICACIONES";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Connection = conn;

                SqlParameter sqlparam1 = new SqlParameter("@Codigo", SqlDbType.Int, 3);
                SqlParameter sqlparam2 = new SqlParameter("@Periodo", SqlDbType.VarChar, 8);
                SqlParameter sqlparam3 = new SqlParameter("@Bodega", SqlDbType.VarChar, 30);
                SqlParameter sqlparam4 = new SqlParameter("@Pasillo", SqlDbType.VarChar, 30);
                SqlParameter sqlparam5 = new SqlParameter("@Ubicacion ", SqlDbType.VarChar, 30);
                SqlParameter sqlparam12 = new SqlParameter("@RETORNO", SqlDbType.Int, 1);
                SqlParameter sqlparam13 = new SqlParameter("@MENSAJE", SqlDbType.VarChar, 100);


                sqlparam1.Value = Txt_Codigo.Text;
                sqlparam2.Value = Txt_Periodo.Text;
                sqlparam3.Value= cboBodega.SelectedValue ;
                sqlparam4.Value = cboPasillo.SelectedValue;
                sqlparam5.Value = Txt_Ubicacion.Text;
             
                sqlparam12.Value = 0;
                sqlparam13.Value = "";

                cmd.Parameters.Add(sqlparam1);
                cmd.Parameters.Add(sqlparam2);
                cmd.Parameters.Add(sqlparam3);
                cmd.Parameters.Add(sqlparam4);
                cmd.Parameters.Add(sqlparam5);
                cmd.Parameters.Add(sqlparam12);
                cmd.Parameters.Add(sqlparam13);



                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();

                LimpiaForm();
            }
            else
                Response.Write("<script type=\"text/javascript\">alert('Para Grabar Favor LLenar todos los campos Requeridos..');</script>");
        }


        protected void btnNuevo_Click1(object sender, EventArgs e)
        {
            LimpiaForm();
        }

        protected void cboBodega_SelectedIndexChanged(object sender, EventArgs e)
        {
            CargacboPasillo(cboBodega.SelectedValue);
        }

    }
}
